#ifndef EDIT_DISPLAY_H
#define EDIT_DISPLAY_H

#include <wx/control.h>
#include "VideoFrame.h"

namespace gui {

class EditDisplay
:   public wxControl
{
public:

    //////////////////////////////////////////////////////////////////////////
    // INITIALIZATION METHODS
    //////////////////////////////////////////////////////////////////////////

    EditDisplay(wxWindow *parent);
	virtual ~EditDisplay();

    //////////////////////////////////////////////////////////////////////////
    // SHOW AN EDIT ACTION
    //////////////////////////////////////////////////////////////////////////

    void show(boost::shared_ptr<wxBitmap> bitmap);

    //////////////////////////////////////////////////////////////////////////
    // GET & SET
    //////////////////////////////////////////////////////////////////////////

    wxSize getSize() const;

private:

    //////////////////////////////////////////////////////////////////////////
    // MEMBERS
    //////////////////////////////////////////////////////////////////////////

    boost::shared_ptr<wxBitmap> mCurrentBitmap;

    int mWidth;
    int mHeight;

    //////////////////////////////////////////////////////////////////////////
    // GUI METHODS
    //////////////////////////////////////////////////////////////////////////
    
    void OnSize(wxSizeEvent& event);
    void OnPaint(wxPaintEvent& event);
    void OnEraseBackground(wxEraseEvent& event);
};

} // namespace

#endif // EDIT_DISPLAY_H